home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer)…68k, x86, SPARC, PA-RISC] / NeXTSTEP 3.3 Dev Intel.iso / NextDeveloper / Source / GNU / emacs / kepteditor.com < prev    next >
Text File  |  1991-04-18  |  3KB  |  89 lines

  1. $ verify = f$verify (0)
  2. $ !
  3. $ ! Kept_Editor.COM
  4. $ ! Command file for use on VMS to spawn an Emacs process
  5. $ ! that can be suspended with C-z and will not go away
  6. $ ! when other programs are run.  This is the normal way
  7. $ ! for users to invoke Emacs on VMS; the command "emacs"
  8. $ ! is normally defined to execute this file.
  9. $ ! That definition, and other definitions used by it, are done by `emacs.com'.
  10. $ ! Users who want to use Emacs should have their `login.com' files
  11. $ ! execute `emacs.com', which is to be found in this directory.
  12. $ !
  13. $ ! Joe Kelsey
  14. $ ! FlexComm Corp.
  15. $ !
  16. $ ! September, 1985
  17. $ !
  18. $ ! Run or attach to an editor in a kept fork.
  19. $ !
  20. $ ! Modified by Marty Sasaki to define the job logical name
  21. $ ! "EMACS_FILE_NAME" with the value of the filename on the command
  22. $ ! line. Lisp code can then use the value of the logical to resume or
  23. $ ! to start editing in that file.
  24. $ !
  25. $ !
  26. $    edit        = ""
  27. $    name        = p1 + " " + f$trnlnm ( "TT" ) - ":"
  28. $    priv_list    = f$setprv ("NOWORLD, NOGROUP")
  29. $    pid         = 0
  30. $ 10$:
  31. $     proc        = f$getjpi ( f$pid ( pid ), "PRCNAM")
  32. $     if proc .eqs. name then -
  33. $        goto attach
  34. $     if pid .ne. 0 then -
  35. $        goto 10$
  36. $ spawn:
  37. $    args        = p2 + " " + p3 + " " + p4 + " " + p5 + " " + -
  38.                   p6 + " " + p7 + " " + p8
  39. $     priv_list    = f$setprv ( priv_list )
  40. $     write sys$error -
  41. "[Spawning a new Kept ''P1']"
  42. $    if p1 .nes. "TPU" then -
  43. $        goto check_emacs
  44. $     define/user    sys$input    sys$command
  45. $     spawn    /process="''NAME'" -
  46.             /nolog -
  47.             edit/'p1' 'args'
  48. $     goto quit1
  49. $ check_emacs:
  50. $    if p1 .nes. "EMACS" then -
  51. $        goto un_kempt
  52. $    define/user    sys$input    sys$command
  53. $    spawn    /process="''NAME'" -
  54.         /nolog -
  55.         runemacs 'args'
  56. $    goto quit1
  57. $ un_kempt:
  58. $ ! The editor is unruly - spawn a process and let the user deal with the
  59. $ ! editor himself.
  60. $    spawn    /process="''NAME'" -
  61.         /nolog
  62. $    goto quit1
  63. $ attach:
  64. $     priv_list    = f$setprv ( priv_list )
  65. $    message_status = f$environment("message")
  66. $    set noon
  67. $    on control_y then goto quit
  68. $    set message /nofacility/noidentification/noseverity/notext
  69. $    if p2 .eqs. "" then goto no_logical
  70. $    temp = f$trnlnm("SYS$DISK") + f$directory() + p2
  71. $    temp = f$edit(temp,"lowercase")
  72. $    define/nolog/job emacs_file_name "''temp'"
  73. $ no_logical:
  74. $     write sys$error -
  75. "[Attaching to process ''NAME']"
  76. $     define/user    sys$input    sys$command
  77. $     attach "''NAME'"
  78. $ quit:
  79. $    set noon
  80. $    if p2 .eqs. "" then goto quit1
  81. $    deassign/job emacs_file_name
  82. $ quit1:
  83. $    set message 'message_status
  84. $     write sys$error -
  85. "[Attached to DCL in directory ''F$TRNLNM("SYS$DISK")'''F$DIRECTORY()']"
  86. $     if verify then -
  87. $        set verify
  88. $    exit
  89.